import { CommandHandle } from "./base"
import Insert from "../insert";

@Insert 
export class CommandPickUp extends CommandHandle {
    constructor() {
        super()
        this.name = "捡取周围物品"
        this.detail = "操作[捡取周围物品]"
        this.insert = "操作[捡取周围物品]"
        this.docs = ""
    }
}

@Insert 
export class CommandPickUpMode extends CommandHandle {
    constructor() {
        super()
        this.name = "捡取周围物品"
        this.detail = "操作[捡取物品,0]"
        this.insert = "操作[捡取物品,0]"
        this.docs = "拾取模式.状态枚举:\n1.非寻路拾取\n2.寻路拾取"
    }
}

@Insert 
export class CommandCreatePill extends CommandHandle {
    constructor() {
        super()
        this.name = "制药"
        this.detail = "操作[制药,$品级$,$技能名称$,$数量$]"
        this.insert = "操作[制药,${1:1},${2:技能},${3:1}]"
        this.docs = "例子:\n操作[制药,1,行军丹,20]"
    }
}

class CommandCreateCook extends CommandHandle {
    constructor() {
        super()
        this.name = "烹饪"
        this.detail = "操作[烹饪,$品级$,$技能名称$,$数量$]"
        this.insert = "操作[烹饪,${1:1},${2:技能},${3:1}]"
        this.docs = "例子:\n操作[烹饪,1,炸蛙腿,20]"
    }
}

class CommandCreateOrnaments extends CommandHandle {
    constructor() {
        super()
        this.name = "饰品"
        this.detail = "操作[饰品加工,$品级$,$技能名称$,$数量$]"
        this.insert = "操作[饰品加工,${1:1},${2:技能},${3:1}]"
        this.docs = "例子:\n操作[饰品加工,1,铁指环,20]"
    }
}

class CommandCreateWeapon extends CommandHandle {
    constructor() {
        super()
        this.name = "武器"
        this.detail = "操作[武器锻造,$品级$,$技能名称$,$数量$]"
        this.insert = "操作[武器锻造,${1:1},${2:技能},${3:1}]"
        this.docs = "例子:\n操作[武器锻造,1,血饮刀,20]"
    }
}

class CommandCreateArmor extends CommandHandle {
    constructor() {
        super()
        this.name = "防具"
        this.detail = "操作[防具制造,$品级$,$技能名称$,$数量$]"
        this.insert = "操作[防具制造,${1:1},${2:技能},${3:1}]"
        this.docs = "例子:\n操作[防具制造,1,武勇帽,20]"
    }
}

class CommandMake extends CommandHandle {
    constructor() {
        super()
        this.name = "制造"
        this.detail = "操作[制造,$品级$,$技能名称$,$单个活力$]"
        this.insert = "操作[制造,${1:1},${2:技能},${3:1}]"
        this.docs = "例子:\n操作[制造,1,怒从心生,73]"
    }
}

@Insert 
export class CommandAlchemy extends CommandHandle {
    constructor() {
        super()
        this.name = "炼金"
        this.detail = "操作[炼金,$装备$]"
        this.insert = "操作[炼金,${1:装备}]"
        this.docs = ""
    }
}

@Insert 
export class CommandGiveItem extends CommandHandle {
    constructor() {
        super()
        this.name = "给予物品"
        this.detail = "操作[给予物品,$角色$,$物品$@9|$物品$@数量|$物品$@数量|$物品$@数量]"
        this.insert = "操作[给予物品,${1:角色},${2:物品}@${3:1}]"
        this.docs = ""
    }
}

@Insert 
export class CommandGiveEquip extends CommandHandle {
    constructor() {
        super()
        this.name = "给予装备"
        this.detail = "操作[给予装备,$角色$,$装备$,$属性名称$>$魂数值$]"
        this.insert = "操作[给予装备,${1:角色},${2:装备},${3:属性}>${4:255}]"
        this.docs = ""
    }
}

@Insert 
export class CommandGiveMoney extends CommandHandle {
    constructor() {
        super()
        this.name = "给予银两"
        this.tags.push("金钱", "银两")
        this.detail = "操作[给予金钱,$角色$,银两]"
        this.insert = "操作[给予金钱,${1:角色},${2:数值}]"
        this.docs = ""
    }
}

@Insert 
export class CommandShelvesPet extends CommandHandle {
    constructor() {
        super()
        this.name = "上架宠物"
        this.tags.push("宠物")
        this.detail = "操作[上架宠物,$NPC$]"
        this.insert = "操作[上架宠物,${1:NPC}]"
        this.docs = ""
    }
}

@Insert 
export class CommandShelvesTargetPet extends CommandHandle {
    constructor() {
        super()
        this.name = "上架指定宠物"
        this.tags.push("宠物", "指定")
        this.detail = "操作[上架宠物,$NPC$,$宠物$]"
        this.insert = "操作[上架宠物,${1:NPC},${2:宠物}]"
        this.docs = ""
    }
}

@Insert 
export class CommandShelvesTargetItem extends CommandHandle {
    constructor() {
        super()
        this.name = "上架指定物品"
        this.tags.push("物品", "道具", "指定")
        this.detail = "操作[上架物品,$NPC$,$道具$]"
        this.insert = "操作[上架物品,${1:NPC},${2:道具}]"
        this.docs = ""
    }
}

@Insert 
export class CommandDiscardPetEquip extends CommandHandle {
    constructor() {
        super()
        this.name = "丢弃宠物装备"
        this.tags.push("宠物", "装备")
        this.detail = "操作[丢弃宠物装备,$装备$,魂>$魂数值$]"
        this.insert = "操作[丢弃宠物装备,${1:装备},魂>${2:数值}]"
        this.docs = ""
    }
}

@Insert 
export class CommandGivePetEquip extends CommandHandle {
    constructor() {
        super()
        this.name = "给予宠物装备"
        this.tags.push("宠物", "装备")
        this.detail = "操作[给予宠物装备,$装备$,魂>$魂数值$]"
        this.insert = "操作[给予宠物装备,${1:装备},魂>${2:数值}]"
        this.docs = ""
    }
}

@Insert 
export class CommandUseTreasureMap extends CommandHandle {
    constructor() {
        super()
        this.name = "使用宝图"
        this.tags.push("宝图", "藏宝图", "密宗神卷")
        this.detail = "操作[使用宝图,$宝图$]"
        this.insert = "操作[使用宝图,${1:宝图}]"
        this.docs = ""
    }
}

@Insert 
export class CommandMergeAntique extends CommandHandle {
    constructor() {
        super()
        this.name = "合成古董"
        this.tags.push("古董")
        this.detail = "操作[合成古董,$古董$]"
        this.insert = "操作[合成古董,${1:古董}]"
        this.docs = ""
    }
}

@Insert 
export class CommandArtificeAntique extends CommandHandle {
    constructor() {
        super()
        this.name = "炼化古董"
        this.tags.push("古董")
        this.detail = "操作[炼化古董,$古董$]"
        this.insert = "操作[炼化古董,${1:古董}]"
        this.docs = ""
    }
}

@Insert 
export class CommandEquipStrengthen extends CommandHandle {
    constructor() {
        super()
        this.name = "装备启灵"
        this.tags.push("启灵")
        this.detail = "操作[启灵,$NPC$,$装备$,$附加$,$附加$]"
        this.insert = "操作[启灵,${1:NPC},${2:装备},${3:启灵珠},${4:}]"
        this.docs = "例\n1.操作[启灵,*吕达*,*红泪*,启灵珠]\n2.操作[启灵,*吕达*,*红泪*,启灵珠,高级启灵幸运石]"
    }
}

@Insert 
export class CommandFeedMount extends CommandHandle {
    constructor() {
        super()
        this.name = "喂养坐骑"
        this.tags.push("坐骑")
        this.detail = "操作[喂养坐骑,$坐骑$,$道具$]"
        this.insert = "操作[喂养坐骑,${1:坐骑},${2:道具}]"
        this.docs = ""
    }
}

@Insert 
export class CommandRepairEquip extends CommandHandle {
    constructor() {
        super()
        this.name = "修理装备"
        this.tags.push("装备")
        this.detail = "操作[修理,$NPC$]"
        this.insert = "操作[修理,${1:NPC}]"
        this.docs = ""
    }
}

@Insert 
export class CommandShopBuy extends CommandHandle {
    constructor() {
        super()
        this.name = "商店购买"
        this.tags.push("商会", "购买")
        this.detail = "操作[商店购买,$物品$,$价格$]"
        this.insert = "操作[商店购买,${1:物品},${2:物品}]"
        this.docs = "全商店寻找"
    }
}

@Insert 
export class CommandTargetShopBuy extends CommandHandle {
    constructor() {
        super()
        this.name = "指定商店购买"
        this.tags.push("商会", "购买", "商店购买")
        this.detail = "操作[商店购买,商店名称,$物品$,$价格$]"
        this.insert = "操作[商店购买,商店名称,${1:物品},${2:物品}]"
        this.docs = "指定商店购买"
    }
}

@Insert 
export class CommandSearchShop extends CommandHandle {
    constructor() {
        super()
        this.name = "商店搜索"
        this.tags.push("商会", "搜索")
        this.detail = "操作[商店搜索,$物品$]"
        this.insert = "操作[商店搜索,${1:物品}]"
        this.docs = ""
    }
}

@Insert 
export class CommandSearchShopBuy extends CommandHandle {
    constructor() {
        super()
        this.name = "商店搜索购买"
        this.tags.push("商会", "搜索", "购买")
        this.detail = "操作[商店搜索购买,$物品$,$价格$]"
        this.insert = "操作[商店搜索购买,${1:物品},${2:价格}]"
        this.docs = ""
    }
}

@Insert 
export class CommandMergeDragonCrystal extends CommandHandle {
    constructor() {
        super()
        this.name = "龙晶合成"
        this.tags.push("合成")
        this.detail = "操作[五行龙晶合成,$NPC$,$合成方式$,$龙晶名称$,$每次合成数量$] "
        this.insert = "操作[五行龙晶合成,${1:NPC},${2:0},${3:龙晶},${4:1}] "
        this.docs = "合成方式枚举:\n0.银两\n1.储备"
    }
}

@Insert 
export class CommandConvertDragonCrystal extends CommandHandle {
    constructor() {
        super()
        this.name = "龙晶转换"
        this.tags.push("转换")
        this.detail = "操作[五行龙晶转换,$NPC$,$合成方式$,$龙晶名称$] "
        this.insert = "操作[五行龙晶转换,${1:NPC},${2:0},${3:龙晶}] "
        this.docs = ""
    }
}

@Insert 
export class CommandDecomposeCard extends CommandHandle {
    constructor() {
        super()
        this.name = "分解卡牌"
        this.tags.push("八卦牌", "卡牌")
        this.detail = "操作[分解卡牌]"
        this.insert = "操作[分解卡牌]"
        this.docs = "分解普通/优秀"
    }
}

@Insert 
export class CommandExchange extends CommandHandle {
    constructor() {
        super()
        this.name = "兑换物品"
        this.tags.push("物品", "道具")
        this.detail = "操作[兑换,$物品$,$数量$]"
        this.insert = "操作[兑换,${1:物品},${2:1}]"
        this.docs = ""
    }
}

@Insert 
export class CommandBuy extends CommandHandle {
    constructor() {
        super()
        this.name = "购买物品"
        this.tags.push("物品", "道具")
        this.detail = "操作[购买,$物品$,$数量$]"
        this.insert = "操作[购买,${1:物品},${2:1}]"
        this.docs = "购买数量上限99"
    }
}

@Insert 
export class CommandSell extends CommandHandle {
    constructor() {
        super()
        this.name = "出售物品"
        this.tags.push("物品", "道具")
        this.detail = "操作[出售,$NPC$,$道具$]"
        this.insert = "操作[出售,${1:NPC},${2:道具}]"
        this.docs = ""
    }
}

@Insert 
export class CommandSellEquip extends CommandHandle {
    constructor() {
        super()
        this.name = "出售装备"
        this.tags.push("装备", "未绑定")
        this.detail = "操作[出售,$NPC$]"
        this.insert = "操作[出售,${1:NPC}]"
        this.docs = "出售全部未绑定装备"
    }
}

@Insert 
export class CommandSign extends CommandHandle {
    constructor() {
        super()
        this.name = "签到"
        this.detail = "操作[签到]"
        this.insert = "操作[签到]"
        this.docs = ""
    }
}

@Insert 
export class CommandActiveSign extends CommandHandle {
    constructor() {
        super()
        this.name = "活跃签到"
        this.tags.push("签到")
        this.detail = "操作[活跃签到]"
        this.insert = "操作[活跃签到]"
        this.docs = ""
    }
}

@Insert 
export class CommandLuxuriousSign extends CommandHandle {
    constructor() {
        super()
        this.name = "豪爽签到"
        this.tags.push("签到")
        this.detail = "操作[豪爽签到]"
        this.insert = "操作[豪爽签到]"
        this.docs = ""
    }
}

@Insert 
export class CommandSecretSkill extends CommandHandle {
    constructor() {
        super()
        this.name = "心决"
        this.detail = "操作[心诀,4]"
        this.insert = "操作[心诀,${1:4}]"
        this.docs = ""
    }
}

@Insert 
export class CommandCultivate extends CommandHandle {
    constructor() {
        super()
        this.name = "修炼"
        this.detail = "操作[修炼]"
        this.insert = "操作[修炼]"
        this.docs = ""
    }
}


@Insert 
export class CommandReserveCultivate extends CommandHandle {
    constructor() {
        super()
        this.name = "储备修炼"
        this.tags.push("储备")
        this.detail = "操作[储备修炼]"
        this.insert = "操作[储备修炼]"
        this.docs = ""
    }
}

@Insert 
export class CommandCancelStatus extends CommandHandle {
    constructor() {
        super()
        this.name = "取消状态"
        this.tags.push("状态")
        this.detail = "操作[取消状态,$状态$]"
        this.insert = "操作[取消状态,${1:摄妖香}]"
        this.docs = "例子:\n1.操作[取消状态,摄妖香]"
    }
}

@Insert 
export class CommandMiniBaby extends CommandHandle {
    constructor() {
        super()
        this.name = "元婴"
        this.detail = "操作[元婴,0]"
        this.insert = "操作[元婴,${1:0}]"
        this.docs = "数值枚举:\n0,1,2"
    }
}

@Insert 
export class CommandJoinMiniGame extends CommandHandle {
    constructor() {
        super()
        this.name = "参加小游戏"
        this.tags.push("小游戏")
        this.detail = "操作[参加小游戏]"
        this.insert = "操作[参加小游戏]"
        this.docs = ""
    }
}